home *** CD-ROM | disk | FTP | other *** search
- Packed Decimal in C
-
- Packed Decimal in C is a collection of subroutines that will convert
- IBM/370 format packed decimal numbers to C language long binary numbers and
- Also convert C language long binary to packed decimal. These routines could
- be useful in a client server environment where data is being exchanged with
- an IBM mainframe. IBM CICS/ESA supports C language, but C language does not
- support packed decimal data. CICS fields like EIBDATE and EIBTIME are in
- packed decimal. A bonus program provided to registered users will simulate
- the IBM/370 edit and mark instruction. The edit and mark program will help
- in formatting numbers for reports.
-
- Packed Decimal in C is not public domain or free. You may use it for a 30
- day evaluation period. After the evaluation period you are expected to
- register.
-
- Shareware is a marketing technique that allows and encourages free sharing
- or copying of programs as a method of distribution. This practice benefits
- both users and developers. Users can test programs and become familiar with
- them before deciding whether to buy them. Shareware programs are usually
- less expensive than commercial software because there is very little
- advertising expense; most of the price you pay actually goes to the
- developer. However, none of this would be possible if the users did not do
- their part by paying for the programs they decide to use. We who write
- shareware depend on the good faith of you, the user, for our profit. When you
- pay for this and other shareware programs, you allow developers to continue
- making high quality, low-cost software available to everyone.
-
- DISCLAIMER: Use Packed Decimal in C at your own risk. The author does not
- warrant the suitability of Packed Decimal in C for any specific purpose,
- and assumes no responsibility for damages of any kind resulting from its use.
- Use of these programs for any period of time constitutes your assumed
- acceptance of this agreement.
-
- Shareware distributors may not charge more than $8.00 per diskette to
- distribute this product. This price restriction does not apply to CD-ROM or
- BBS distribution.
-
- Support is provided to registered users. Problem reports and suggestions are
- also welcome from unregistered users. We can be contacted at:
-
- IAMBIC SOFTWARE, Inc.
- 6607 West 77th Street
- Overland Park, Kansas 66204-3143
-
- Compuserve: 70541,3215
- Internet: 70541.3215@compuserve.com
-
- Telephone support is also provided for registered users.
-
- CICS/ESA, IBM/370 are trademarks of International Business Machines, Inc.
-
- /************************************************************
-
- Name: sPackedToBin
-
- Function:
-
- This routine will convert IBM 370 packed decimal numbers to fixed
- point binary numbers four bytes long.
-
- arguments:
-
- 1. unsigned char pointer to the packed decimal number, max length
- is six bytes.
-
- 2. pointer to a long int to receive the result.
-
- 3. short int length of argument 1, the packed decimal number.
-
- return codes:
-
- 0 success
- 1 invalid decimal digit
- 2 overflow, numbers greater than 2,147,483,647 (0x7fffff)
- 3 invalid length specified
-
-
- *************************************************************/
-
-
-
- /************************************************************
-
- Name: sBinToPacked
-
- Function:
-
- This routine will convert long binary number to IBM 370 packed
- decimal format eight bytes long.
-
- arguments:
-
- 1. unsigned char pointer to the packed decimal number result
- 8 bytes long
-
- 2. pointer to a long int to convert.
-
- return codes:
-
- 0 success
-
- *************************************************************/
-
-
-
-
-
- /************************************************************
-
- Name: sEdMk ( bonus program for registered users )
-
- Function:
-
- This routine will edit a IBM/370 packed decimal numbers under control of
- an edit mask. The IBM/370 principles of operation manual describes
- the instruction that this routine will simulate. This routine uses
- different edit codes because ASCII code uses 0x20, 0x21, 0x22 for space,
- '!', and '"' respectively. The packed is changed to zone format and
- modified under control of the edit pattern. The edited result replaces
- the edit mask. The first byte of the edit mask is a fill byte. The fill
- byte replaces non significant digits.
-
- Examples:
-
- 23,000
- $153,237.25
- $$$$$$2.32CR
-
-
- Edit mask characters:
-
- This routine original IBM/370 EDMK codes
-
- 0x10 digit selector 0x21
- 0x11 significance starter 0x21
- 0x12 field separator 0x22
- other message byte
-
- arguments:
-
- 1. unsigned char pointer to an edit mask.
-
- 2. short int length of argument 1, includes length of 0x00 for end of
- string.
-
- 3. unsigned char pointer to a packed decimal number.
-
- 4. unsigned char pointer to pointer of the
- byte before the first significant result byte
-
- returns condition code:
-
- 0. last field is zero or of zero length
- 1. last field is less than zero
- 2. last field is greater than zero
- 3. not defined
- 4. data exception, ( first nibble of byte is not a digit )
- **\
-
-
- Registration Form
-
- QTY Registration Type Price Ext. Price
-
- ____ Single PC $10.00 ______
-
-
- ____ Mainframe/Midrange $20.00 ______
-
-
- ____ Unlimited Site License $100.00 ______
-
-
- TOTAL ______
-
-
- Registration is required for the development platform only.
-
-
- Name _______________________________________________________________
-
-
- Company ____________________________________________________________
-
-
- Address_____________________________________________________________
-
-
- City ______________________________State_______Zip__________________
-
-
- Phone/E-mail________________________________________________________
-
-
-
- Where did you obtain your copy of Packed Decimal in C?
-
-
- _____________________________________________________________________
-
-
-
-
-
- Mail payment to:
-
-
-
-
- IAMBIC SOFTWARE, Inc.
- 6607 West 77th Street
- Overland Park, Kansas 66204-3143
-
-
-
-
-
-
-